﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using proyectoFinalPDS.Aplicacion;

namespace proyectoFinalPDS.Presentacion
{
    public partial class PantallaInicioDocentes : Form
    {
        private int idUsuario;
        private List<DTOCursos> dtoC;

        public PantallaInicioDocentes(int id)
        {
            idUsuario = id;
            InitializeComponent();

            ControladorDocente cd = new ControladorDocente();

            dtoC= cd.getCursosDictas(idUsuario);
            tablaCursosDictados.Cursor = Cursors.Hand;

            int contador=0;

            dtoC.Sort((x, y) => y.fechaFin.CompareTo(x.fechaFin));

            foreach(DTOCursos c in dtoC){
                if (c.fechaFin.CompareTo(DateTime.Now) < 0)
                {
                    tablaCursosDictados.Rows.Add(c.nombre.Trim(), c.descripcion.Trim(),"Finalizado");
                    tablaCursosDictados.Rows[contador].DefaultCellStyle.BackColor = Color.LightSalmon;
                    
                }
                else if (c.fechainicio.CompareTo(DateTime.Now) > 0)
                {
                    tablaCursosDictados.Rows.Add(c.nombre.Trim(), c.descripcion.Trim(),"Inactivo");
                    tablaCursosDictados.Rows[contador].DefaultCellStyle.BackColor = Color.LightYellow;
                }   else
                {
                    tablaCursosDictados.Rows.Add(c.nombre.Trim(), c.descripcion.Trim(),"Activo");
                    tablaCursosDictados.Rows[contador].DefaultCellStyle.BackColor = Color.LightCyan;
                }
                contador++;
            }
 
           
        }

        private void splitContainer1_Panel1_Paint(object sender, PaintEventArgs e)
        {

        }
        /*Link cerrar sesion*/
        private void linkLabel4_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            InicioSesion inicio = new InicioSesion();

            inicio.Show();

            this.Dispose();
        }
        /*Evento de cierre*/
        private void PantallaInicioDocentes_FormClosing(object sender, FormClosingEventArgs e)
        {
            InicioSesion inicio = new InicioSesion();

            inicio.Show();

            this.Dispose();
        }
        /*Link cursos disponibles*/
        private void linkLabel3_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            CursosDisponibles cursosD = new CursosDisponibles(-idUsuario);

            cursosD.Show();
            this.Dispose();
        }
        /*Link Editar perfil*/
        private void linkLabel2_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            EditarPerfil editarPerfil = new EditarPerfil(idUsuario, this);

            this.Hide();
            editarPerfil.Show();
        }
        /*Link crear tarea*/
        private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            if (tablaCursosDictados.SelectedRows.Count >= 1)
            {
                CrearTarea ct = new CrearTarea(idUsuario, dtoC[tablaCursosDictados.CurrentCell.RowIndex].id);
                
                ct.Show();
                this.Dispose();
            }
        }

        private void linkLabel2_LinkClicked_1(object sender, LinkLabelLinkClickedEventArgs e)
        {
            if (tablaCursosDictados.SelectedRows.Count >= 1 && dtoC.Count >= 1 && 
                dtoC[tablaCursosDictados.CurrentCell.RowIndex].fechaFin.CompareTo(DateTime.Now) > 0 &&
                dtoC[tablaCursosDictados.CurrentCell.RowIndex].fechainicio.CompareTo(DateTime.Now) < 0)
            {
                EditarCurso ec = new EditarCurso(idUsuario, dtoC[tablaCursosDictados.CurrentCell.RowIndex].id);

                ec.Show();
                this.Dispose();
            }
            else
            {
                MessageBox.Show("Debe seleccionar un curso activo.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void tablaCursosDictados_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {

        }

        private void PantallaInicioDocentes_Load(object sender, EventArgs e)
        {
 
        }

        private void PantallaInicioDocentes_Shown(object sender, EventArgs e)
        {
            if (dtoC.Count == 0)
            {
                tablaCursosDictados.Rows.Add("No existen Cursos", "El docente no tiene cursos asociados.");
                tablaCursosDictados.SelectedRows[0].DefaultCellStyle.SelectionBackColor = Color.Red;
                
            }
        }

        private void tablaCursosDictados_CellContentDoubleClick(object sender, DataGridViewCellEventArgs e)
        {

        }

        private void tablaCursosDictados_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            if (tablaCursosDictados.SelectedRows.Count >= 1 && dtoC.Count > 0)
            {
                VerCursoUsuario vcu = new VerCursoUsuario(-idUsuario, dtoC[tablaCursosDictados.CurrentCell.RowIndex], 3);

                vcu.Show();
                this.Dispose();
            }
        }
    }
}
